package club.vann.leetcode.race;

/**
 * <p>难度：Easy</p>
 * <p>题目：数组异或操作</p>
 * <p>描述：给你两个整数，n 和 start 。
 *
 * 数组 nums 定义为：nums[i] = start + 2*i（下标从 0 开始）且 n == nums.length 。
 *
 * 请返回 nums 中所有元素按位异或（XOR）后得到的结果。
 *
 *
 *
 * 示例 1：
 *
 * 输入：n = 5, start = 0
 * 输出：8
 * 解释：数组 nums 为 [0, 2, 4, 6, 8]，其中 (0 ^ 2 ^ 4 ^ 6 ^ 8) = 8 。
 *      "^" 为按位异或 XOR 运算符。
 * 示例 2：
 *
 * 输入：n = 4, start = 3
 * 输出：8
 * 解释：数组 nums 为 [3, 5, 7, 9]，其中 (3 ^ 5 ^ 7 ^ 9) = 8.
 * 示例 3：
 *
 * 输入：n = 1, start = 7
 * 输出：7
 * 示例 4：
 *
 * 输入：n = 10, start = 5
 * 输出：2
 *
 *
 * 提示：
 *
 * 1 <= n <= 1000
 * 0 <= start <= 1000
 * n == nums.length</p>
 * Created with IntelliJ IDEA.
 * User: fanyu
 * Date: 2020/6/25
 * Time: 21:40
 * To change this template use File | Settings | File Templates.
 * Description:
 */
public class LeetCode_1486 {
    public static void main(String[] args) {
        LeetCode_1486 leetCode = new LeetCode_1486();

        System.out.println("Result["+TestCase.ans+"] : " + leetCode.xorOperation(TestCase.n, TestCase.start));
    }

    private int xorOperation(int n, int start) {
        int res = start + 2 * 0;
        int[] nums = new int[n];
        for(int i = 1; i < n; i ++) {
            res ^= start + 2 * i;
        }
        return res;
    }

    static class TestCase {
        public static final int n = 5;
        public static final int start = 0;
        public static final int ans = 8;
    }
}
